package sv.gob.mh.dgii.model;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import org.apache.commons.lang3.builder.EqualsBuilder;

/**
 * 
 * @author luis.monterrosa
 *
 */
@Entity
@Table(name = "VW_ED_CONSULTA_DECLARACION")
public class VwEdConsultaDeclaracion implements Serializable {

	private static final long serialVersionUID = 6533032566090218576L;
	
	public VwEdConsultaDeclaracion() {
		
	}
	
	public VwEdConsultaDeclaracion(VwEdConsultaDeclaracionId id) {
		this.id = id;
	}
	
	private VwEdConsultaDeclaracionId id;
	private String dcampo; 
	private String stipodato;
	private Double vvalor;
	private Double vvalorcomputado;
	private Date fvalorfecha;
	private String svalortexto;
	private Integer bmultiregistro;
	private Integer cseccion;
	private String cmoneda;
	private Integer bmonetario;

	@Column (name="B_MULTI_REGISTRO")
	public Integer getBmultiregistro() {
		return bmultiregistro;
	}

	public void setBmultiregistro(Integer bmultiregistro) {
		this.bmultiregistro = bmultiregistro;
	}
	@Column (name="C_SECCION")
	public Integer getCseccion() {
		return cseccion;
	}

	public void setCseccion(Integer cseccion) {
		this.cseccion = cseccion;
	}

	@EmbeddedId	
	@AttributeOverrides( { 
		@AttributeOverride(name = "cdeclaracion", column = @Column(name = "C_DECLARACION", nullable = false)),
		@AttributeOverride(name = "ccampo", column = @Column(name = "C_CAMPO", nullable = false)),
		@AttributeOverride(name = "nrenglon", column = @Column(name = "N_RENGLON", nullable = false))
	})
	public VwEdConsultaDeclaracionId getId() {
		return id;
	}
	public void setId(VwEdConsultaDeclaracionId id) {
		this.id = id;
	}
	@Column (name="D_CAMPO")
	public String getDcampo() {
		return dcampo;
	}
	public void setDcampo(String dcampo) {
		this.dcampo = dcampo;
	}
	@Column (name="S_TIPO_DATO")
	public String getStipodato() {
		return stipodato;
	}
	public void setStipodato(String stipodato) {
		this.stipodato = stipodato;
	}
	@Column (name="V_VALOR")
	public Double getVvalor() {
		return vvalor;
	}
	public void setVvalor(Double vvalor) {
		this.vvalor = vvalor;
	}
	@Column (name="V_VALOR_COMPUTADO")
	public Double getVvalorcomputado() {
		return vvalorcomputado;
	}
	public void setVvalorcomputado(Double vvalorcomputado) {
		this.vvalorcomputado = vvalorcomputado;
	}
	@Column (name="F_VALOR_FECHA")
	public Date getFvalorfecha() {
		return fvalorfecha;
	}
	public void setFvalorfecha(Date fvalorfecha) {
		this.fvalorfecha = fvalorfecha;
	}
	@Column (name="S_VALOR_TEXTO")
	public String getSvalortexto() {
		return svalortexto;
	}
	public void setSvalortexto(String svalortexto) {
		this.svalortexto = svalortexto;
	}
	@Column (name="C_MONEDA")
	public String getCmoneda() {
		return cmoneda;
	}
	
	public void setCmoneda(String cmoneda) {
		this.cmoneda = cmoneda;
	}
	@Column (name="B_MONETARIO")
	public Integer getBmonetario() {
		return bmonetario;
	}

	public void setBmonetario(Integer bmonetario) {
		this.bmonetario = bmonetario;
	}

	@Override  
	public boolean equals(Object obj) {  
		if (this == obj) {  
			return true;
		}
		if (!(obj instanceof VwEdConsultaDeclaracionId)) {
			return false;
		}
		final VwEdConsultaDeclaracion castOther = (VwEdConsultaDeclaracion) obj;
		return new EqualsBuilder().append(id, castOther.getId()).isEquals();
	}

}
